/*
 * consolaFS.c
 *
 *  Created on: 16/10/2011
 *      Author: Luca
 */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "commands.h"
#include "FS.h"


//void finfo();

void consola_pfs(){

	char comando[200];


	system("clear");

	t_commands *comandos = commands_create(' ','\n',' ');

	commands_add(comandos,"fsinfo",fsinfo);
	//commands_add(comandos,"finfo",finfo);

	printf("\n --------------------------------------------");
	printf("\n ------ Consola del Proceso Filesystem ------");
	printf("\n --------------------------------------------");
	printf("\n\t Comandos válidos: fsinfo (Filesystem information), finfo <path archivo> (File information)");

	fflush(stdin);
	printf("Ingrese un comando válido: \n");
	fgets(comando, sizeof(comando), stdin);

	commands_parser(comandos,comando);

	do{

		if (strcmp(comando,"fsinfo") == 0){
			fsinfo();
		}

		if (strcmp(comando,"finfo") == 0){
			//finfo();
		}

		printf("Ingrese un comando válido: \n");
		fgets(comando, sizeof(comando), stdin);

	}while(strcmp(comando,"exit") != 0);

	exit(0);

	return;

}

void fsinfo(){
	t_fat32 *fat32 = malloc(sizeof(t_fat32));
	printf("\n ------ Filesystem Information ------");
	printf("Cantidad de clusters ocupados:%u\n", obtener_cant_clusters_ocupados(fat32));
	printf("Cantidad de clusters libres:%u\n", obtener_cant_clusters_libres(fat32));
	printf("Tamaño de un sector (en bytes):%u\n", fat32->bootSector.bytesPSector);
	printf("Tamaño de un cluster (en bytes):%u\n", fat32->tamCluster);
	printf("Tamaño de la FAT (en kilobytes):%u\n", fat32->tamFat);
	return;
}

